﻿import mx.controls.Alert;
import mx.managers.PopUpManager;
import mx.rpc.http.HTTPService;

[Bindable]
public var fin : Function;

[Bindable]
private var tituloForma : String = "";

[Bindable]
private var categoria : XML;

[Bindable]
private var proyecto : XML;

[Bindable]
private var equipo : XML;

public function nuevaCategoria(p : XML) : void {
	proyecto = p;
	tituloForma = "Nueva categoria";
	categoria = null;
	equipoHttp.request.proyectoId = proyecto.@id;
	equipoHttp.send();
}

public function modificarCategoria(p : XML, c : XML) : void {
	proyecto = p;
	categoria = c;
	tituloForma = "Modificar categoria";
	equipoHttp.request.proyectoId = proyecto.@id;
	equipoHttp.send();
	
	nombre.text = c.@nombre;
	comentarios.text = c.@comentarios;
	admin.selected = new Boolean(new Number(c.@admin));
}

private function equipoResult() : void {
	equipo = equipoHttp.lastResult.equipo[0];
	if (categoria != null) {
		var userId : int = categoria.usuario[0].@id;
		var i : int;
		for (i = 0; i < equipo.miembro.length(); i++) {
			if (userId == equipo.miembro[i].@id) {
				encargado.selectedItem = equipo.miembro[i];
				break;
			}
		}
	}
}

private function httpError() : void {
	Alert.show("Error al contactar al servidor", "Error");
}

private function categoriasResult() : void {
	var categoriasResult : mx.rpc.http.mxml.HTTPService;
	if (categoria == null) {
		categoriasResult = nuevaCategoriaHttp;
	} else {
		categoriasResult = modificarCategoriaHttp;
	}
	
	if (categoriasResult.lastResult.error[0] != undefined) {
		Alert.show(categoriasResult.lastResult.error[0], "Error");
	} else {
		fin();
		cerrarVentana();
	}
}

private function cerrarVentana() : void {
	PopUpManager.removePopUp(this);
}

private function guardar() : void {
	var encargado : XML = encargado.selectedItem as XML;
	if (categoria == null) {
		nuevaCategoriaHttp.request.proyectoId = proyecto.@id;
		nuevaCategoriaHttp.request.nombre = nombre.text;
		nuevaCategoriaHttp.request.comentarios = comentarios.text;
		nuevaCategoriaHttp.request.encargadoId = encargado.@id;
		nuevaCategoriaHttp.request.admin = admin.selected;
		nuevaCategoriaHttp.send();
	} else {
		modificarCategoriaHttp.request.id = categoria.@id;
		modificarCategoriaHttp.request.nombre = nombre.text;
		modificarCategoriaHttp.request.comentarios = comentarios.text;
		modificarCategoriaHttp.request.encargadoId = encargado.@id;
		modificarCategoriaHttp.request.admin = admin.selected;
		modificarCategoriaHttp.send();
	}
}